In a typical large data storage system, a plurality of production/application processing hosts (servers) process data and store results on storage devices such as logical volumes in a storage array. A traditional methodology for backing up the data in the storage array is for backup agents running on the production/application hosts to communicate with the storage array and a backup server. When a backup in required, the backup server informs the backup agents to read data from the storage array and forward the data to the backup server. The backup server in turn writes the data as a stream of backup data to backup media, such as a tape library or a purpose built backup appliance (PBBA). This means that when a backup is in progress the backup agents on the production servers consume CPU processing power and bandwidth (BW) and can slow or disrupt regular data processing of the hosts.
The backup server/PBBA has no control over the backup agents and no knowledge of the current processing loads on the production hosts. Backup agents respond to the backup application on the backup server and initiate a backup when told to do so without regard to ongoing processing operations on the storage array. Thus, an agent may delay an ongoing processing operation or unnecessarily consume a large amount of processing resources and bandwidth over a short period of time rather than spreading out the backup over a longer period of time and using fewer resources and less bandwidth. For instance, an agent may create a high CPU/BW load reading data from the storage array or from a local copy on a host for backup, even though the amount of data to be backed up is small and the backup window is large, and where a lower level of backup performance or a delay in initiating backup to permit an ongoing processing operation to complete would be adequate and less burdensome. This is very inefficient, and critical processing operations may be disrupted unnecessarily.
It is desirable to provide systems and methods that address the foregoing and other problems with backup by enabling a backup application residing on a backup server to exercise centralized management over the performance of backup agents on production hosts, and by enabling the storage array to establish and enforce I/O priorities on I/O communications with the storage array, and it is to these ends that the invention is directed.